﻿namespace PgBirdie.Core.Model
{
    public enum DatabaseType { Source, Target }

    public enum CommandType { Undefined, Dump, Delta, Restore }

    public enum PersistenceType { Keep, Add, Change, Delete }

    public enum ExitCodeType { Failure = -1, Success = 0 }

    public enum ConstraintType { PrimaryKey, ForeignKey, UniqueKey, Check }

    public enum ColumnDataType
    {
        BigInt,
        Boolean,
        ByteA,
        Char,
        Date,
        Double,
        Inet,
        Integer,                
        SmallInt,                
        Text,
        Timestamp,
        Uuid,
        VarChar
    }

    public enum PgDbObjectType { Database, Schema, Table, Column, Sequence, Constraint, Index }

    /// <summary>
    /// Grant or Revoke.
    /// </summary>
    public enum PgPrivilegeCommandType { Grant, Revoke }

    public enum PgPrivilegeType
    {
        All,
        Connect,      
        Delete,
        Insert,
        Select,
        Temp,
        Temporary,
        Update,
        Usage
    }
}